package com.xszx.dao;

import com.xszx.entity.Goods;
import com.xszx.entity.MonthCount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface GoodsDao {
    /**
     * 分页获取货物信息
     *
     * @param gid   货物序号
     * @param name  货物名称
     * @param type  货物类型
     * @param code  货物批次
     * @param state 货物状态
     * @return 包含分页查询结果的 list<Goods>
     */
    List<Goods> getGoodsQueryWrapper(
            @Param("gid") Integer gid,
            @Param("name") String name,
            @Param("type") String type,
            @Param("code") String code,
            @Param("state") String state,
            @Param("rCode") String rCode
    );

    /**
     * 添加货物
     *
     * @param goods 货物
     * @return 影响行数
     */
    Integer insertGoods(Goods goods);

    /**
     * 根据id删除货物
     *
     * @param gid 货物id
     * @return 影响行数
     */
    Integer removeGoodsById(@Param("gid") Integer gid);

    /**
     * 更新货物
     *
     * @param goods 保存着更新信息的货物
     * @return 影响行数
     */
    Integer updateGoodsById(Goods goods);

    /**
     * 获取货物总量
     *
     * @return 货物总量
     */
    Integer getGoodsCount();

    // 按年月统计货物数量
    List<MonthCount> countByYearMonth();

    List<Goods> getGoodsInfo(Integer wid);
}
